Les mathématiques confèrent aux humains une capacité d’abstraction suffisamment complexe pour leur permettre de toucher les étoiles et les atomes, d’assembler la pensée pour mieux apprécier l’histoire et de prédire le futur, de toucher l’infini et de goûter à l’éternité. À partir des maths, on a pu créer des outils de calcul permettent de projeter des images de l’univers, bien au-delà de la Voie lactée. Mais appréhender le vivant demeure néanmoins une tâche complexe.
En développant son jeu de la vie (game of life) en 1970, John Horton Connway a présenté un exemple percutant que des règles simples peuvent mener à des résultats innatendus. Le jeu consiste à placer des jetons sur les cases d’un plateau de jeu consistant en une simple grille othogonale. Le jeu évolue en fonction du nombre de jetons présents parmi les huit cases du voisinage des jetons ou des cases vides.
- Les jetons ayant 0 ou 1 voisin sont retirés.
- Les jetons ayant 2 ou 3 voisins restent intacts
- Les jetons ayant plus de 3 voisins sont retirés
- Un jeton est posé sur les cases ayant exactement 3 voisins
C’est tout. Selon la manière dont les jetons sont placés au départ, il se peut que la grille se vide de ses jetons, ou que les jetons y prennent beaucoup de place. Il arrive aussi que des cycles réguliers se dégagent ou que l’on se retrouve avec des formes régulières. Vous aurez peut-être compris à ce stade pourquoi le jeu est appelé “jeu de la vie”. La première règle est une situation localisée de sous-population, condition dans laquelle la reproduction est difficile. La deuxième règle est une situation localisée stable. La troisième est une situation de surpopulation, où des individus meurent par un environnement rendu inadéquat par insuffisance de ressource ou surplus de toxicité. Enfin, la quatrième indique une situation favorable à la reproduction.
Une grille vidée correspond à une extinction et une grille remplie correspond à une explosion de population. Une oscillation est un “climax”, un état stable en écologie. Un léger changement initial dans la disposition initiale des jetons peu mener à des solutions différentes.
Le jeu, qui en fait est une application de la technique des automates cellulaires, se complexifie à mesure que le nombre de jetons grandit. Un humain passera des heures à calculer une itération à 50 jetons, commettra probablement quelques erreurs et demandera quelques cafés. Un processeur pourra gérer des centaines d’itérations sur des grilles de centaines de jetons en quelques secondes.
En établissant des règles correspondant aux mécanismes de l’objet étudié, il devient possible de modéliser l’évolution des systèmes vivants, comme l’émergence d’espèces invasives.

Simulation avec automates cellulaires. Source: Anynyme, publié sur Giphy.
Définitions

Carte des domaines de l’écologie mathématique
L’écologie mathématique couvre un large spectre de domaines, mais peut être divisée en deux branches: l’écologie théorique et l’écologie quantitative (Legendre et Legendre, 2012). Alors que l’écologie théorique s’intéresse à l’expression mathématique des mécanismes écologiques, l’écologie quantitative, plus empirique, en étudie principalement les phénomènes. La modélisation écologique vise à prévoir une situation selon des conditions données. Faisant partie à la fois de l’écologie théorique et de l’écologie quantitative, elle superpose souvent des mécanismes de l’écologie théorique et des phénomènes empiriques de l’écologie quantitative. L’écologie numérique comprend la branche descriptive de l’écologie quantitative, c’est-à-dire qu’elle s’intéresse à évaluer des effets à partir de données empiriques. L’exploration des données dans le but d’y découvrir des structures passe souvent par des techniques multivariées comme la classification hiérarchique ou la réduction d’axe (par exemple, l’analyse en composantes principales), qui sont davantage heuristiques (dans notre cas, bioheuristique) que statistiques. Les tests d’hypothèses et l’analyse des probabilités, quant à eux, relèvent de la biostatistique.
Le génie écologique, une discipline intimement liée à l’écologie mathématique, est vouée à l’analyse, la modélisation, la conception et la construction de systèmes vivants dans le but de résoudre de manière efficace des problèmes liés à l’écologie et à une panoplie de domaines qui lui sont raccordés. L’agriculture est l’un de ces domaines. C’est d’emblée la discipline qui sera prisée dans ce manuel. Néanmoins, les principes qui seront discutés sont transférable à l’écologie générale.
À qui s’adresse ce manuel?
Le cours vise à introduire des étudiants gradués en agronomie, biologie, écologie, sols, génie agroenvironnemental, génie civil et génie écologique à l’analyse et la modélisation dans leur domaine, tant pour les appuyer pour leurs travaux de recherche que pour leur fournir une trousse d’outil émancipatrice pour leur cheminement professionnel. Plus spécifiquement, vous serez accompagné à découvrir différents outils numériques qui vous permettront d’appréhender vos données, d’en faire émerger l’information et de construire des modèles. En ce sens, c’est un cours de pilotage, pas un cours de mécanique.
Bien que des connaissances en programmation et en statistiques aideront grandement les étudiant.e.s à appréhender ce document, une littératie informatique n’est pas requise. Dans tous les cas, quiconque voudra tirer profit de ce manuel devra faire preuve d’autonomie. Vous serez guidés vers des ressources et des références, mais je vous suggère vivement de développer votre propre bibliothèque adaptée à vos besoins et à votre manière de comprendre.
Les logiciels libres
Tous les outils numériques qui sont proposés dans ce cours sont des logiciels libres:
« Logiciel libre » [free software] désigne des logiciels qui respectent la liberté des utilisateurs. En gros, cela veut dire que les utilisateurs ont la liberté d’exécuter, copier, distribuer, étudier, modifier et améliorer ces logiciels. Ainsi, « logiciel libre » fait référence à la liberté, pas au prix1 (pour comprendre ce concept, vous devez penser à « liberté d’expression », pas à « entrée libre »). - Projet GNU
Donc: codes sources ouverts, développement souvent communautaire, gratuité. Plusieurs raisons éthiques, principalement liées au contrôle de l’environnement virtuel par les utilisateurs et les communautés, peuvent justifier l’utilisation de logiciels libres. Plusieurs raisons pratiques justifient aussi cette orientation. Les logiciels libres vous permettent de transporter vos outils avec vous, d’une entreprise à l’autre, au bureau, ou à la maison, et ce, sans vous soucier d’acheter de coûteuses licences.
On soulève avec justesse les risques liés aux possibles erreurs dans les codes des logiciels communautaires. Pour les scientifiques, une erreur peu mener à une étude retirée de la littérature et même, potentiellement, des politiques publiques mal avisées. Pour les ingénieurs, les conséquences pourraient être dramatiques. Mais retenez qu’en toute circonstance, comme professionnel.le, vous êtes responsable des outils que vous utilisez: vous devez vous assurer de la bonne qualité d’un logiciel, qu’il soit propriétaire ou communautaire.
Alors que la qualité des logiciels propriétaires est généralement suivie par audits, celle des logiciels libres est plutôt soumise à la vigilance communautaire. Chaque approche a ses avantages et inconvénients, mais elles ne sont pas exclusives. Ainsi les logiciels libres peuvent être audités à l’externe par quiconque décide de le faire. Différentes entreprises, souvent concurrentes, participent tant à cette vigilance qu’au développement des logiciels libres: elles en sont même souvent les instigatrices (comme RStudio, Anaconda et Enthought).
Par ailleurs, ce manuel est distribué librement (license MIT).
Langage de programmation
Ce manuel est créé dans un environnement intéractif de type carnet de notes (Jupyter lab). Ce format permet d’intercaller des cellules de texte et des cellules de calcul.
R
Ce cours est basé sur le langage R. En plus d’être libre, R est un langage de programmation dynamique largement utilisé dans le monde universitaire, et dont l’utilisation s’étend de manière soutenue hors des tours d’ivoire. Son développement est supporté par la R Foundation for Statistical Computing, basée à l’Université de Vienne. Également, l’équipe de RStudio contribue largement au développement de modules génériques. R est principalement utilisé pour le calcul statistique, mais les récents développements le rendent un outil de choix pour tout ce qui entoure la science des données, de l’interaction avec les bases de données au déploiement d’outil d’intelligence artificielle en passant par la visualisation. Une fois implémenté avec des modules de calcul scientifique spécialisés en biologie, en écologie et en agronomie (que nous couvrirons au long du cours), R devient un outil de calcul convivial, rapide et fiable pour le calcul écologique.
Pourquoi pas Python?
La première mouture de ce cous se fondait sur le langage Python. Tout comme R, Python est un langage de programmation dynamique prisé pour le calcul scientifique. Python est un langage générique apprécié pour sa polyvalence et sa simplicité. Python est utilisé autant pour créer des logiciels ou des sites web que pour le calcul scientifique. Ainsi, Python peut être utilisé en interopérabilité avec une panoplie de logiciels libres, comme QGIS pour la cartographie et FreeCAD pour le dessin technique. Il est particulièrement apprécié en ingénierie pour ses modules de calcul par éléments finis (FeNICS, SfePy) et en bioinformatique pour ses outils liés au séquençage (scikit-bio), mais ses lacunes en analyse statistique, en particulier en statistiques multivariées m’ont amené à favoriser R.
Bien que leurs possibilités se superposent largement, ce serait une erreur d’aborder R et Python comme des langages rivaux. Les deux langages s’expriment de manière similaire et s’inspirent mutuellement: apprendre à travailler avec l’un revient à apprendre l’autre. Les spécialistes en calcul scientifique tendent à apprendre à travailler avec plus d’un langage de programmation. Par ailleurs, l’enteprise Ursa labs travaille en ce moment à l’élaboration d’une infrastructure de données permettant de partager des objets R et Python, en vue d’intégrer différents langages de programmation dans un même flux de travail.
Pourquoi pas Matlab?
Parce qu’on est en 2018.
Pourquoi pas ______ ?
D’autres langages, comme Julia, Scala, Javascript et Ruby sont aussi utilisés en calcul scientifique. Ils sont néanmoins moins garnis et moins documentés que R. Des langages de plus bas niveau, comme Fortran et C++, viennent souvent appuyer les fonctions des autres langages: ces langages sont plus ardus à utiliser au jour le jour, mais leur rapidité de calcul est imbattable.
Lectures complémentaires
Écologie mathématique
- How to be a quantitative ecologist. Jason Mathipoulos vous prend par la main pour découvrir les notions de mathématiques fondamentales en écologie, appliquées avec le langage R.
- Numerical ecology. L’ouvrage hautement détaillé des frères Legendre est non seulement fondamental, mais aussi fondateur d’une science qui évolue encore aujourd’hui: l’analyse des données écologiques.
- A practical guide to ecological modelling. Soetaert et Herman portent une attention particulière à la présentation des principes de modélisation dans un langage accessible - ce qui est rarement le cas dans le domaine de la modélisation. Les modèles présentés concernent principalement les bilans de masse, en terme de systèmes de réactions chimiques et de relations biologiques.
- Modélisation mathématique en écologie. Rare livre en modélisation écologique publié en français, la première partie s’attarde aux concepts mathématiques, alors que la deuxième planche à les appliquer. Si le haut niveau d’abstraction de la première partie vous rebute, n’hésitez pas débuter par la seconde partie et de vous référer à la première au besoin.
- A new ecology: systems perspective. Principalement grâce au soleil, la Terre forme un ensemble de gradients d’énergie qui se déclinent en des systèmes d’une étonnante complexité. C’est ainsi que le regreté Sven Erik Jørgensen (1934-2016) et ses collaborateurs décrivent les écosystèmes dans cet ouvrage qui fait suite aux travaux fondateurs de Howard Thomas Odum.
Sven Erik Jørgensen
- Ecological engineering. Principle and Practice.
- Ecological processes handbook.
- Modeling complex ecological dynamics
Programmation
- R for data science. L’analyse de données est une branche importante de l’écologie mathématique. Ce manuel traite des matrices et la manipulation de données chapitre 3), de la visualisation (chapitre 4) ainsi que de l’apprentissage automatique (chapitre 11). R for data science repasse ces sujets plus en profondeur. En particulier, l’ouvrage de Garrett Grolemund et Hadley Wickham offre une introduction au module graphique
ggplot2.
- Numerical ecology with R. Daniel Borcard enseigne l’écologie numérique à l’Université de Montréal. Son cours est condensé dans ce livre recettes voué à l’application des principes lourdement décrits dans Numerical ecology.
Divers
- The truthful art. Dans cet ouvrage, Alberto Cairo s’intéresse à l’utilisation des données et de leurs présentation pour fournir une information adéquate à différents publics.
Besoin d’aide?
Les ouvrages de référence reconnus vous offrent des bases solides sur lesquelles vous pouvez vous appuyer dans vos travaux. Mais au-delà des principes, au jour le jour, vous vous butterez immanquablement à toutes sortes de petits problèmes. Quel module utiliser pour cette tâche précise? Que veut dire ce message d’erreur? Comment interpréter ce résultat? Pour tous les petits accrocs du quotidien en calcul scientifique, internet offre de nombreuses ressources qui sont très hétérogènes en qualité. Vous aprendrez à reconnaître les ressources fiables à celles qui sont douteuses. Les plateformes basées sur Stack Exchange, comme Stack Overflow et Cross Validated, m’ont souvent été d’une aide précieuse. Vous aurez avantage à vous construire une petite banque d’information (Turtl, Evernote, Google keep) en collectant des liens, en prenant en notes certaines recettes et en suivant des sites d’intérêt avec des flux RSS.
À propos de l’auteur
Je m’appelle Serge-Étienne Parent. Je suis ingénieur écologue et professeur adjoint au Département des sols et de génie agroalimentaire de l’Université Laval, Québec, Canada. Je crois que la science est le meilleur moyen d’appréhender le monde pour prendre des décisions avisées, particulièrement en écologie, une science maltraitée de toute part.
Un cours complémentaire à d’autres cours
Ce cours a été développé pour ouvrir des perspectives mathématiques en écologie et en agronomie à la FSAA de l’Université Laval. Il est complémentaire à certains cours offerts dans d’autres institutions académiques au Québec, dont ceux-ci.
Contribuer au manuel
Je suis ouvert aux commentaires et suggestions. Pour contribuer directement, dirigez-vous sur le dépôt du manuel sur GitHub, puis ouvrez une Issue pour en discuter. Créez une nouvelle branche (fork), effectuez les modifications, puis lancer une requête de fusion (pull resquest).
LS0tCnRpdGxlOiAiSW50cm9kdWN0aW9uIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpMZXMgbWF0aMOpbWF0aXF1ZXMgY29uZsOocmVudCBhdXggaHVtYWlucyB1bmUgY2FwYWNpdMOpIGQnYWJzdHJhY3Rpb24gc3VmZmlzYW1tZW50IGNvbXBsZXhlIHBvdXIgbGV1ciBwZXJtZXR0cmUgZGUgdG91Y2hlciBsZXMgw6l0b2lsZXMgZXQgbGVzIGF0b21lcywgZCdhc3NlbWJsZXIgbGEgcGVuc8OpZSBwb3VyIG1pZXV4IGFwcHLDqWNpZXIgbCdoaXN0b2lyZSBldCBkZSBwcsOpZGlyZSBsZSBmdXR1ciwgZGUgdG91Y2hlciBsJ2luZmluaSBldCBkZSBnb8O7dGVyIMOgIGwnw6l0ZXJuaXTDqS4gw4AgcGFydGlyIGRlcyBtYXRocywgb24gYSBwdSBjcsOpZXIgZGVzIG91dGlscyBkZSBjYWxjdWwgcGVybWV0dGVudCBkZSBwcm9qZXRlciBkZXMgaW1hZ2VzIGRlIGwndW5pdmVycywgYmllbiBhdS1kZWzDoCBkZSBsYSBWb2llIGxhY3TDqWUuIE1haXMgYXBwcsOpaGVuZGVyIGxlIHZpdmFudCBkZW1ldXJlIG7DqWFubW9pbnMgdW5lIHTDomNoZSBjb21wbGV4ZS4KCkVuIGTDqXZlbG9wcGFudCBzb24gamV1IGRlIGxhIHZpZSAoKmdhbWUgb2YgbGlmZSopIGVuIDE5NzAsIEpvaG4gSG9ydG9uIENvbm53YXkgYSBwcsOpc2VudMOpIHVuIGV4ZW1wbGUgcGVyY3V0YW50IHF1ZSBkZXMgcsOoZ2xlcyBzaW1wbGVzIHBldXZlbnQgbWVuZXIgw6AgZGVzIHLDqXN1bHRhdHMgaW5uYXRlbmR1cy4gTGUgamV1IGNvbnNpc3RlIMOgIHBsYWNlciBkZXMgamV0b25zIHN1ciBsZXMgY2FzZXMgZCd1biBwbGF0ZWF1IGRlIGpldSBjb25zaXN0YW50IGVuIHVuZSBzaW1wbGUgZ3JpbGxlIG90aG9nb25hbGUuIExlIGpldSDDqXZvbHVlIGVuIGZvbmN0aW9uIGR1IG5vbWJyZSBkZSBqZXRvbnMgcHLDqXNlbnRzIHBhcm1pIGxlcyBodWl0IGNhc2VzIGR1IHZvaXNpbmFnZSBkZXMgamV0b25zIG91IGRlcyBjYXNlcyB2aWRlcy4KCjEuIExlcyBqZXRvbnMgYXlhbnQgMCBvdSAxIHZvaXNpbiBzb250IHJldGlyw6lzLgoyLiBMZXMgamV0b25zIGF5YW50IDIgb3UgMyB2b2lzaW5zIHJlc3RlbnQgaW50YWN0cwozLiBMZXMgamV0b25zIGF5YW50IHBsdXMgZGUgMyB2b2lzaW5zIHNvbnQgcmV0aXLDqXMKNC4gVW4gamV0b24gZXN0IHBvc8OpIHN1ciBsZXMgY2FzZXMgYXlhbnQgZXhhY3RlbWVudCAzIHZvaXNpbnMgCgpDJ2VzdCB0b3V0LiBTZWxvbiBsYSBtYW5pw6hyZSBkb250IGxlcyBqZXRvbnMgc29udCBwbGFjw6lzIGF1IGTDqXBhcnQsIGlsIHNlIHBldXQgcXVlIGxhIGdyaWxsZSBzZSB2aWRlIGRlIHNlcyBqZXRvbnMsIG91IHF1ZSBsZXMgamV0b25zIHkgcHJlbm5lbnQgYmVhdWNvdXAgZGUgcGxhY2UuIElsIGFycml2ZSBhdXNzaSBxdWUgZGVzIGN5Y2xlcyByw6lndWxpZXJzIHNlIGTDqWdhZ2VudCBvdSBxdWUgbCdvbiBzZSByZXRyb3V2ZSBhdmVjIGRlcyBmb3JtZXMgcsOpZ3VsacOocmVzLiBWb3VzIGF1cmV6IHBldXQtw6p0cmUgY29tcHJpcyDDoCBjZSBzdGFkZSBwb3VycXVvaSBsZSBqZXUgZXN0IGFwcGVsw6kgImpldSBkZSBsYSB2aWUiLiBMYSBwcmVtacOocmUgcsOoZ2xlIGVzdCB1bmUgc2l0dWF0aW9uIGxvY2FsaXPDqWUgZGUgc291cy1wb3B1bGF0aW9uLCBjb25kaXRpb24gZGFucyBsYXF1ZWxsZSBsYSByZXByb2R1Y3Rpb24gZXN0IGRpZmZpY2lsZS4gTGEgZGV1eGnDqG1lIHLDqGdsZSBlc3QgdW5lIHNpdHVhdGlvbiBsb2NhbGlzw6llIHN0YWJsZS4gTGEgdHJvaXNpw6htZSBlc3QgdW5lIHNpdHVhdGlvbiBkZSBzdXJwb3B1bGF0aW9uLCBvw7kgZGVzIGluZGl2aWR1cyBtZXVyZW50IHBhciB1biBlbnZpcm9ubmVtZW50IHJlbmR1IGluYWTDqXF1YXQgcGFyIGluc3VmZmlzYW5jZSBkZSByZXNzb3VyY2Ugb3Ugc3VycGx1cyBkZSB0b3hpY2l0w6kuIEVuZmluLCBsYSBxdWF0cmnDqG1lIGluZGlxdWUgdW5lIHNpdHVhdGlvbiBmYXZvcmFibGUgw6AgbGEgcmVwcm9kdWN0aW9uLgoKVW5lIGdyaWxsZSB2aWTDqWUgY29ycmVzcG9uZCDDoCB1bmUgZXh0aW5jdGlvbiBldCB1bmUgZ3JpbGxlIHJlbXBsaWUgY29ycmVzcG9uZCDDoCB1bmUgZXhwbG9zaW9uIGRlIHBvcHVsYXRpb24uIFVuZSBvc2NpbGxhdGlvbiBlc3QgdW4gImNsaW1heCIsIHVuIMOpdGF0IHN0YWJsZSBlbiDDqWNvbG9naWUuIFVuIGzDqWdlciBjaGFuZ2VtZW50IGluaXRpYWwgZGFucyBsYSBkaXNwb3NpdGlvbiBpbml0aWFsZSBkZXMgamV0b25zIHBldSBtZW5lciDDoCBkZXMgc29sdXRpb25zIGRpZmbDqXJlbnRlcy4KCkxlIGpldSwgcXVpIGVuIGZhaXQgZXN0IHVuZSBhcHBsaWNhdGlvbiBkZSBsYSB0ZWNobmlxdWUgZGVzICphdXRvbWF0ZXMgY2VsbHVsYWlyZXMqLCBzZSBjb21wbGV4aWZpZSDDoCBtZXN1cmUgcXVlIGxlIG5vbWJyZSBkZSBqZXRvbnMgZ3JhbmRpdC4gVW4gaHVtYWluIHBhc3NlcmEgZGVzIGhldXJlcyDDoCBjYWxjdWxlciB1bmUgaXTDqXJhdGlvbiDDoCA1MCBqZXRvbnMsIGNvbW1ldHRyYSBwcm9iYWJsZW1lbnQgcXVlbHF1ZXMgZXJyZXVycyBldCBkZW1hbmRlcmEgcXVlbHF1ZXMgY2Fmw6lzLiBVbiBwcm9jZXNzZXVyIHBvdXJyYSBnw6lyZXIgZGVzIGNlbnRhaW5lcyBkJ2l0w6lyYXRpb25zIHN1ciBkZXMgZ3JpbGxlcyBkZSBjZW50YWluZXMgZGUgamV0b25zIGVuIHF1ZWxxdWVzIHNlY29uZGVzLgoKRW4gw6l0YWJsaXNzYW50IGRlcyByw6hnbGVzIGNvcnJlc3BvbmRhbnQgYXV4IG3DqWNhbmlzbWVzIGRlIGwnb2JqZXQgw6l0dWRpw6ksIGlsIGRldmllbnQgcG9zc2libGUgZGUgbW9kw6lsaXNlciBsJ8Opdm9sdXRpb24gZGVzIHN5c3TDqG1lcyB2aXZhbnRzLCBjb21tZSBsJ8OpbWVyZ2VuY2UgZCdlc3DDqGNlcyBpbnZhc2l2ZXMuCgo8aW1nIHNyYz0iaHR0cHM6Ly9tZWRpYS5naXBoeS5jb20vbWVkaWEvZGthRVlZaUNEY2xBQS9naXBoeS5naWY/cmVzcG9uc2VfaWQ9NTkyNWJiOThmNDMxMjgwMjM3ZDQ4NDkzIiB3aWR0aD0zMDA+CgpTaW11bGF0aW9uIGF2ZWMgYXV0b21hdGVzIGNlbGx1bGFpcmVzLiBTb3VyY2U6IEFueW55bWUsIHB1Ymxpw6kgc3VyIFtHaXBoeV0oaHR0cHM6Ly9naXBoeS5jb20vZ2lmcy9taXNjLWRrYUVZWWlDRGNsQUEpLgoKCiMgRMOpZmluaXRpb25zCgo8aW1nIHNyYz0iaW1hZ2VzLzAxX2Rpc2NpcGxpbmVzLnBuZyIgd2lkdGg9MjgwIHN0eWxlPSJwYWRkaW5nOjVweDsiPgoKQ2FydGUgZGVzIGRvbWFpbmVzIGRlIGwnw6ljb2xvZ2llIG1hdGjDqW1hdGlxdWUKCkwnw6ljb2xvZ2llIG1hdGjDqW1hdGlxdWUgY291dnJlIHVuIGxhcmdlIHNwZWN0cmUgZGUgZG9tYWluZXMsIG1haXMgcGV1dCDDqnRyZSBkaXZpc8OpZSBlbiBkZXV4IGJyYW5jaGVzOiBsJyoqw6ljb2xvZ2llIHRow6lvcmlxdWUqKiBldCBsJyoqw6ljb2xvZ2llIHF1YW50aXRhdGl2ZSoqIChMZWdlbmRyZSBldCBMZWdlbmRyZSwgMjAxMikuIEFsb3JzIHF1ZSBsJ8OpY29sb2dpZSB0aMOpb3JpcXVlIHMnaW50w6lyZXNzZSDDoCBsJ2V4cHJlc3Npb24gbWF0aMOpbWF0aXF1ZSBkZXMgbcOpY2FuaXNtZXMgw6ljb2xvZ2lxdWVzLCBsJ8OpY29sb2dpZSBxdWFudGl0YXRpdmUsIHBsdXMgZW1waXJpcXVlLCBlbiDDqXR1ZGllIHByaW5jaXBhbGVtZW50IGxlcyBwaMOpbm9tw6huZXMuIExhICoqbW9kw6lsaXNhdGlvbiDDqWNvbG9naXF1ZSoqIHZpc2Ugw6AgcHLDqXZvaXIgdW5lIHNpdHVhdGlvbiBzZWxvbiBkZXMgY29uZGl0aW9ucyBkb25uw6llcy4gRmFpc2FudCBwYXJ0aWUgw6AgbGEgZm9pcyBkZSBsJ8OpY29sb2dpZSB0aMOpb3JpcXVlIGV0IGRlIGwnw6ljb2xvZ2llIHF1YW50aXRhdGl2ZSwgZWxsZSBzdXBlcnBvc2Ugc291dmVudCBkZXMgbcOpY2FuaXNtZXMgZGUgbCfDqWNvbG9naWUgdGjDqW9yaXF1ZSBldCBkZXMgcGjDqW5vbcOobmVzIGVtcGlyaXF1ZXMgZGUgbCfDqWNvbG9naWUgcXVhbnRpdGF0aXZlLiBMJyoqw6ljb2xvZ2llIG51bcOpcmlxdWUqKiBjb21wcmVuZCBsYSBicmFuY2hlIGRlc2NyaXB0aXZlIGRlIGwnw6ljb2xvZ2llIHF1YW50aXRhdGl2ZSwgYydlc3Qtw6AtZGlyZSBxdSdlbGxlIHMnaW50w6lyZXNzZSDDoCDDqXZhbHVlciBkZXMgZWZmZXRzIMOgIHBhcnRpciBkZSBkb25uw6llcyBlbXBpcmlxdWVzLiBMJ2V4cGxvcmF0aW9uIGRlcyBkb25uw6llcyBkYW5zIGxlIGJ1dCBkJ3kgZMOpY291dnJpciBkZXMgc3RydWN0dXJlcyBwYXNzZSBzb3V2ZW50IHBhciBkZXMgdGVjaG5pcXVlcyBtdWx0aXZhcmnDqWVzIGNvbW1lIGxhIGNsYXNzaWZpY2F0aW9uIGhpw6lyYXJjaGlxdWUgb3UgbGEgcsOpZHVjdGlvbiBkJ2F4ZSAocGFyIGV4ZW1wbGUsIGwnYW5hbHlzZSBlbiBjb21wb3NhbnRlcyBwcmluY2lwYWxlcyksIHF1aSBzb250IGRhdmFudGFnZSBoZXVyaXN0aXF1ZXMgKGRhbnMgbm90cmUgY2FzLCAqKmJpb2hldXJpc3RpcXVlKiopIHF1ZSBzdGF0aXN0aXF1ZXMuIExlcyB0ZXN0cyBkJ2h5cG90aMOoc2VzIGV0IGwnYW5hbHlzZSBkZXMgcHJvYmFiaWxpdMOpcywgcXVhbnQgw6AgZXV4LCByZWzDqHZlbnQgZGUgbGEgKipiaW9zdGF0aXN0aXF1ZSoqLgoKTGUgKipnw6luaWUgw6ljb2xvZ2lxdWUqKiwgdW5lIGRpc2NpcGxpbmUgaW50aW1lbWVudCBsacOpZSDDoCBsJ8OpY29sb2dpZSBtYXRow6ltYXRpcXVlLCBlc3Qgdm91w6llIMOgIGwnYW5hbHlzZSwgbGEgbW9kw6lsaXNhdGlvbiwgbGEgY29uY2VwdGlvbiBldCBsYSBjb25zdHJ1Y3Rpb24gZGUgc3lzdMOobWVzIHZpdmFudHMgZGFucyBsZSBidXQgZGUgcsOpc291ZHJlIGRlIG1hbmnDqHJlIGVmZmljYWNlIGRlcyBwcm9ibMOobWVzIGxpw6lzIMOgIGwnw6ljb2xvZ2llIGV0IMOgIHVuZSBwYW5vcGxpZSBkZSBkb21haW5lcyBxdWkgbHVpIHNvbnQgcmFjY29yZMOpcy4gTCdhZ3JpY3VsdHVyZSBlc3QgbCd1biBkZSBjZXMgZG9tYWluZXMuIEMnZXN0IGQnZW1ibMOpZSBsYSBkaXNjaXBsaW5lIHF1aSBzZXJhIHByaXPDqWUgZGFucyBjZSBtYW51ZWwuIE7DqWFubW9pbnMsIGxlcyBwcmluY2lwZXMgcXVpIHNlcm9udCBkaXNjdXTDqXMgc29udCB0cmFuc2bDqXJhYmxlIMOgIGwnw6ljb2xvZ2llIGfDqW7DqXJhbGUuCgojIMOAIHF1aSBzJ2FkcmVzc2UgY2UgbWFudWVsPwoKTGUgY291cnMgdmlzZSDDoCBpbnRyb2R1aXJlIGRlcyDDqXR1ZGlhbnRzIGdyYWR1w6lzIGVuIGFncm9ub21pZSwgYmlvbG9naWUsIMOpY29sb2dpZSwgc29scywgZ8OpbmllIGFncm9lbnZpcm9ubmVtZW50YWwsIGfDqW5pZSBjaXZpbCBldCBnw6luaWUgw6ljb2xvZ2lxdWUgw6AgbCdhbmFseXNlIGV0IGxhIG1vZMOpbGlzYXRpb24gZGFucyBsZXVyIGRvbWFpbmUsIHRhbnQgcG91ciBsZXMgYXBwdXllciBwb3VyIGxldXJzIHRyYXZhdXggZGUgcmVjaGVyY2hlIHF1ZSBwb3VyIGxldXIgZm91cm5pciB1bmUgdHJvdXNzZSBkJ291dGlsIMOpbWFuY2lwYXRyaWNlIHBvdXIgbGV1ciBjaGVtaW5lbWVudCBwcm9mZXNzaW9ubmVsLiBQbHVzIHNww6ljaWZpcXVlbWVudCwgdm91cyBzZXJleiBhY2NvbXBhZ27DqSDDoCBkw6ljb3V2cmlyIGRpZmbDqXJlbnRzIG91dGlscyBudW3DqXJpcXVlcyBxdWkgdm91cyBwZXJtZXR0cm9udCBkJ2FwcHLDqWhlbmRlciB2b3MgZG9ubsOpZXMsIGQnZW4gZmFpcmUgw6ltZXJnZXIgbCdpbmZvcm1hdGlvbiBldCBkZSBjb25zdHJ1aXJlIGRlcyBtb2TDqGxlcy4gRW4gY2Ugc2VucywgKipjJ2VzdCB1biBjb3VycyBkZSBwaWxvdGFnZSwgcGFzIHVuIGNvdXJzIGRlIG3DqWNhbmlxdWUqKi4KCkJpZW4gcXVlIGRlcyBjb25uYWlzc2FuY2VzIGVuIHByb2dyYW1tYXRpb24gZXQgZW4gc3RhdGlzdGlxdWVzIGFpZGVyb250IGdyYW5kZW1lbnQgbGVzIMOpdHVkaWFudC5lLnMgw6AgYXBwcsOpaGVuZGVyIGNlIGRvY3VtZW50LCB1bmUgbGl0dMOpcmF0aWUgaW5mb3JtYXRpcXVlIG4nZXN0IHBhcyByZXF1aXNlLiBEYW5zIHRvdXMgbGVzIGNhcywgcXVpY29ucXVlIHZvdWRyYSB0aXJlciBwcm9maXQgZGUgY2UgbWFudWVsIGRldnJhIGZhaXJlIHByZXV2ZSBkJ2F1dG9ub21pZS4gVm91cyBzZXJleiBndWlkw6lzIHZlcnMgZGVzIHJlc3NvdXJjZXMgZXQgZGVzIHLDqWbDqXJlbmNlcywgbWFpcyBqZSB2b3VzIHN1Z2fDqHJlIHZpdmVtZW50IGRlIGTDqXZlbG9wcGVyIHZvdHJlIHByb3ByZSBiaWJsaW90aMOocXVlIGFkYXB0w6llIMOgIHZvcyBiZXNvaW5zIGV0IMOgIHZvdHJlIG1hbmnDqHJlIGRlIGNvbXByZW5kcmUuCgojIExlcyBsb2dpY2llbHMgbGlicmVzCgpUb3VzIGxlcyBvdXRpbHMgbnVtw6lyaXF1ZXMgcXVpIHNvbnQgcHJvcG9zw6lzIGRhbnMgY2UgY291cnMgc29udCBkZXMgbG9naWNpZWxzIGxpYnJlczoKCj4gwqsgTG9naWNpZWwgbGlicmUgwrsgW2ZyZWUgc29mdHdhcmVdIGTDqXNpZ25lIGRlcyBsb2dpY2llbHMgcXVpIHJlc3BlY3RlbnQgbGEgbGliZXJ0w6kgZGVzIHV0aWxpc2F0ZXVycy4gRW4gZ3JvcywgY2VsYSB2ZXV0IGRpcmUgcXVlIGxlcyB1dGlsaXNhdGV1cnMgb250IGxhIGxpYmVydMOpIGQnZXjDqWN1dGVyLCBjb3BpZXIsIGRpc3RyaWJ1ZXIsIMOpdHVkaWVyLCBtb2RpZmllciBldCBhbcOpbGlvcmVyIGNlcyBsb2dpY2llbHMuIEFpbnNpLCDCqyBsb2dpY2llbCBsaWJyZSDCuyBmYWl0IHLDqWbDqXJlbmNlIMOgIGxhIGxpYmVydMOpLCBwYXMgYXUgcHJpeDEgKHBvdXIgY29tcHJlbmRyZSBjZSBjb25jZXB0LCB2b3VzIGRldmV6IHBlbnNlciDDoCDCqyBsaWJlcnTDqSBkJ2V4cHJlc3Npb24gwrssIHBhcyDDoCDCqyBlbnRyw6llIGxpYnJlIMK7KS4gLSBbUHJvamV0IEdOVV0oaHR0cHM6Ly93d3cuZ251Lm9yZy9waGlsb3NvcGh5L2ZyZWUtc3cuZnIuaHRtbCkKCkRvbmM6IGNvZGVzIHNvdXJjZXMgb3V2ZXJ0cywgZMOpdmVsb3BwZW1lbnQgc291dmVudCBjb21tdW5hdXRhaXJlLCBncmF0dWl0w6kuIFBsdXNpZXVycyBbcmFpc29ucyDDqXRoaXF1ZXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9QWcxQUtJbF8yR00pLCBwcmluY2lwYWxlbWVudCBsacOpZXMgYXUgY29udHLDtGxlIGRlIGwnZW52aXJvbm5lbWVudCB2aXJ0dWVsIHBhciBsZXMgdXRpbGlzYXRldXJzIGV0IGxlcyBjb21tdW5hdXTDqXMsIHBldXZlbnQganVzdGlmaWVyIGwndXRpbGlzYXRpb24gZGUgbG9naWNpZWxzIGxpYnJlcy4gUGx1c2lldXJzIHJhaXNvbnMgcHJhdGlxdWVzIGp1c3RpZmllbnQgYXVzc2kgY2V0dGUgb3JpZW50YXRpb24uIExlcyBsb2dpY2llbHMgbGlicmVzIHZvdXMgcGVybWV0dGVudCBkZSB0cmFuc3BvcnRlciB2b3Mgb3V0aWxzIGF2ZWMgdm91cywgZCd1bmUgZW50cmVwcmlzZSDDoCBsJ2F1dHJlLCBhdSBidXJlYXUsIG91IMOgIGxhIG1haXNvbiwgZXQgY2UsIHNhbnMgdm91cyBzb3VjaWVyIGQnYWNoZXRlciBkZSBjb8O7dGV1c2VzIGxpY2VuY2VzLgoKT24gc291bMOodmUgYXZlYyBqdXN0ZXNzZSBsZXMgcmlzcXVlcyBsacOpcyBhdXggcG9zc2libGVzIGVycmV1cnMgZGFucyBsZXMgY29kZXMgZGVzIGxvZ2ljaWVscyBjb21tdW5hdXRhaXJlcy4gUG91ciBsZXMgc2NpZW50aWZpcXVlcywgdW5lIGVycmV1ciBwZXUgbWVuZXIgw6AgdW5lIMOpdHVkZSByZXRpcsOpZSBkZSBsYSBsaXR0w6lyYXR1cmUgZXQgbcOqbWUsIHBvdGVudGllbGxlbWVudCwgZGVzIHBvbGl0aXF1ZXMgcHVibGlxdWVzIG1hbCBhdmlzw6llcy4gUG91ciBsZXMgaW5nw6luaWV1cnMsIGxlcyBjb25zw6lxdWVuY2VzIHBvdXJyYWllbnQgw6p0cmUgZHJhbWF0aXF1ZXMuIE1haXMgcmV0ZW5leiBxdSdlbiB0b3V0ZSBjaXJjb25zdGFuY2UsICoqY29tbWUgcHJvZmVzc2lvbm5lbC5sZSwgdm91cyDDqnRlcyByZXNwb25zYWJsZSBkZXMgb3V0aWxzIHF1ZSB2b3VzIHV0aWxpc2V6OiB2b3VzIGRldmV6IHZvdXMgYXNzdXJlciBkZSBsYSBib25uZSBxdWFsaXTDqSBkJ3VuIGxvZ2ljaWVsLCBxdSdpbCBzb2l0IHByb3ByacOpdGFpcmUgb3UgY29tbXVuYXV0YWlyZSoqLgoKQWxvcnMgcXVlIGxhIHF1YWxpdMOpIGRlcyBsb2dpY2llbHMgcHJvcHJpw6l0YWlyZXMgZXN0IGfDqW7DqXJhbGVtZW50IHN1aXZpZSBwYXIgYXVkaXRzLCBjZWxsZSBkZXMgbG9naWNpZWxzIGxpYnJlcyBlc3QgcGx1dMO0dCBzb3VtaXNlIMOgIGxhIHZpZ2lsYW5jZSBjb21tdW5hdXRhaXJlLiBDaGFxdWUgYXBwcm9jaGUgYSBzZXMgYXZhbnRhZ2VzIGV0IGluY29udsOpbmllbnRzLCBtYWlzIGVsbGVzIG5lIHNvbnQgcGFzIGV4Y2x1c2l2ZXMuIEFpbnNpIGxlcyBsb2dpY2llbHMgbGlicmVzIHBldXZlbnQgw6p0cmUgYXVkaXTDqXMgw6AgbCdleHRlcm5lIHBhciBxdWljb25xdWUgZMOpY2lkZSBkZSBsZSBmYWlyZS4gRGlmZsOpcmVudGVzIGVudHJlcHJpc2VzLCBzb3V2ZW50IGNvbmN1cnJlbnRlcywgcGFydGljaXBlbnQgdGFudCDDoCBjZXR0ZSB2aWdpbGFuY2UgcXUnYXUgZMOpdmVsb3BwZW1lbnQgZGVzIGxvZ2ljaWVscyBsaWJyZXM6IGVsbGVzIGVuIHNvbnQgbcOqbWUgc291dmVudCBsZXMgaW5zdGlnYXRyaWNlcyAoY29tbWUgW1JTdHVkaW9dKGh0dHBzOi8vd3d3LnJzdHVkaW8uY29tLyksIFtBbmFjb25kYV0oaHR0cHM6Ly93d3cuYW5hY29uZGEuY29tLykgZXQgW0VudGhvdWdodF0oaHR0cHM6Ly93d3cuZW50aG91Z2h0LmNvbS8pKS4KClBhciBhaWxsZXVycywgY2UgbWFudWVsIGVzdCBkaXN0cmlidcOpIGxpYnJlbWVudCAobGljZW5zZSBbTUlUXShMSUVOKSkuIAoKIyBMYW5nYWdlIGRlIHByb2dyYW1tYXRpb24KCkNlIG1hbnVlbCBlc3QgY3LDqcOpIGRhbnMgdW4gZW52aXJvbm5lbWVudCBpbnTDqXJhY3RpZiBkZSB0eXBlICpjYXJuZXQgZGUgbm90ZXMqIChbSnVweXRlciBsYWJdKGh0dHBzOi8vanVweXRlci5vcmcpKS4gQ2UgZm9ybWF0IHBlcm1ldCBkJ2ludGVyY2FsbGVyIGRlcyBjZWxsdWxlcyBkZSB0ZXh0ZSBldCBkZXMgY2VsbHVsZXMgZGUgY2FsY3VsLgoKIyMgUgpDZSBjb3VycyBlc3QgYmFzw6kgc3VyIGxlIGxhbmdhZ2UgW1JdKGh0dHBzOi8vd3d3LnItcHJvamVjdC5vcmcvKS4gRW4gcGx1cyBkJ8OqdHJlIGxpYnJlLCBSIGVzdCB1biBsYW5nYWdlIGRlIHByb2dyYW1tYXRpb24gZHluYW1pcXVlIFtsYXJnZW1lbnQgdXRpbGlzw6kgZGFucyBsZSBtb25kZSB1bml2ZXJzaXRhaXJlXShodHRwczovL3d3dy5ueXRpbWVzLmNvbS8yMDA5LzAxLzA3L3RlY2hub2xvZ3kvYnVzaW5lc3MtY29tcHV0aW5nLzA3cHJvZ3JhbS5odG1sKSwgZXQgZG9udCBsJ3V0aWxpc2F0aW9uIHMnw6l0ZW5kIGRlIG1hbmnDqHJlIHNvdXRlbnVlIGhvcnMgZGVzIHRvdXJzIGQnaXZvaXJlLiBTb24gZMOpdmVsb3BwZW1lbnQgZXN0IHN1cHBvcnTDqSBwYXIgbGEgW1IgRm91bmRhdGlvbiBmb3IgU3RhdGlzdGljYWwgQ29tcHV0aW5nXShodHRwczovL3d3dy5yLXByb2plY3Qub3JnL2ZvdW5kYXRpb24vKSwgYmFzw6llIMOgIGwnVW5pdmVyc2l0w6kgZGUgVmllbm5lLiDDiWdhbGVtZW50LCBsJ8OpcXVpcGUgZGUgW1JTdHVkaW9dKGh0dHBzOi8vd3d3LnJzdHVkaW8uY29tLykgY29udHJpYnVlIGxhcmdlbWVudCBhdSBbZMOpdmVsb3BwZW1lbnQgZGUgbW9kdWxlcyBnw6luw6lyaXF1ZXNdKGh0dHBzOi8vd3d3LnJzdHVkaW8uY29tL3Byb2R1Y3RzL3JwYWNrYWdlcy8pLiBSIGVzdCBwcmluY2lwYWxlbWVudCB1dGlsaXPDqSBwb3VyIGxlIGNhbGN1bCBzdGF0aXN0aXF1ZSwgbWFpcyBsZXMgcsOpY2VudHMgZMOpdmVsb3BwZW1lbnRzIGxlIHJlbmRlbnQgdW4gb3V0aWwgZGUgY2hvaXggcG91ciB0b3V0IGNlIHF1aSBlbnRvdXJlIGxhIHNjaWVuY2UgZGVzIGRvbm7DqWVzLCBkZSBsJ2ludGVyYWN0aW9uIGF2ZWMgbGVzIGJhc2VzIGRlIGRvbm7DqWVzIGF1IGTDqXBsb2llbWVudCBkJ291dGlsIGQnaW50ZWxsaWdlbmNlIGFydGlmaWNpZWxsZSBlbiBwYXNzYW50IHBhciBsYSB2aXN1YWxpc2F0aW9uLiBVbmUgZm9pcyBpbXBsw6ltZW50w6kgYXZlYyBkZXMgbW9kdWxlcyBkZSBjYWxjdWwgc2NpZW50aWZpcXVlIHNww6ljaWFsaXPDqXMgZW4gYmlvbG9naWUsIGVuIMOpY29sb2dpZSBldCBlbiBhZ3Jvbm9taWUgKHF1ZSBub3VzIGNvdXZyaXJvbnMgYXUgbG9uZyBkdSBjb3VycyksIFIgZGV2aWVudCB1biBvdXRpbCBkZSBjYWxjdWwgY29udml2aWFsLCByYXBpZGUgZXQgZmlhYmxlIHBvdXIgbGUgY2FsY3VsIMOpY29sb2dpcXVlLgoKIyMgUG91cnF1b2kgcGFzIFB5dGhvbj8KTGEgcHJlbWnDqHJlIG1vdXR1cmUgZGUgY2UgY291cyBzZSBmb25kYWl0IHN1ciBsZSBsYW5nYWdlIGBQeXRob25gLiBUb3V0IGNvbW1lIFIsIGBQeXRob25gIGVzdCB1biBsYW5nYWdlIGRlIHByb2dyYW1tYXRpb24gZHluYW1pcXVlIHByaXPDqSBwb3VyIGxlIGNhbGN1bCBzY2llbnRpZmlxdWUuIGBQeXRob25gIGVzdCB1biBsYW5nYWdlIGfDqW7DqXJpcXVlIGFwcHLDqWNpw6kgcG91ciBzYSBwb2x5dmFsZW5jZSBldCBzYSBzaW1wbGljaXTDqS4gYFB5dGhvbmAgZXN0IHV0aWxpc8OpIGF1dGFudCBwb3VyIGNyw6llciBkZXMgbG9naWNpZWxzIG91IGRlcyBzaXRlcyB3ZWIgcXVlIHBvdXIgbGUgY2FsY3VsIHNjaWVudGlmaXF1ZS4gQWluc2ksIFB5dGhvbiBwZXV0IMOqdHJlIHV0aWxpc8OpIGVuIGludGVyb3DDqXJhYmlsaXTDqSBhdmVjIHVuZSBwYW5vcGxpZSBkZSBsb2dpY2llbHMgbGlicmVzLCBjb21tZSBbUUdJU10oaHR0cDovL3d3dy5xZ2lzLm9yZykgcG91ciBsYSBjYXJ0b2dyYXBoaWUgZXQgW0ZyZWVDQURdKGh0dHBzOi8vZ2l0aHViLmNvbS9GcmVlQ0FEL0ZyZWVDQUQpIHBvdXIgbGUgZGVzc2luIHRlY2huaXF1ZS4gSWwgZXN0IHBhcnRpY3VsacOocmVtZW50IGFwcHLDqWNpw6kgZW4gaW5nw6luaWVyaWUgcG91ciBzZXMgbW9kdWxlcyBkZSBjYWxjdWwgcGFyIMOpbMOpbWVudHMgZmluaXMgKFtGZU5JQ1NdKGh0dHBzOi8vZmVuaWNzcHJvamVjdC5vcmcvKSwgW1NmZVB5XShodHRwOi8vc2ZlcHkub3JnL2RvYy1kZXZlbC9pbmRleC5odG1sKSkgZXQgZW4gYmlvaW5mb3JtYXRpcXVlIHBvdXIgc2VzIG91dGlscyBsacOpcyBhdSBzw6lxdWVuw6dhZ2UgKFtzY2lraXQtYmlvXShodHRwOi8vc2Npa2l0LWJpby5vcmcvKSksIG1haXMgc2VzIGxhY3VuZXMgZW4gYW5hbHlzZSBzdGF0aXN0aXF1ZSwgZW4gcGFydGljdWxpZXIgZW4gc3RhdGlzdGlxdWVzIG11bHRpdmFyacOpZXMgbSdvbnQgYW1lbsOpIMOgIGZhdm9yaXNlciBSLgoKQmllbiBxdWUgbGV1cnMgcG9zc2liaWxpdMOpcyBzZSBzdXBlcnBvc2VudCBsYXJnZW1lbnQsIGNlIHNlcmFpdCB1bmUgZXJyZXVyIGQnYWJvcmRlciBSIGV0IGBQeXRob25gIGNvbW1lIGRlcyBsYW5nYWdlcyByaXZhdXguIExlcyBkZXV4IGxhbmdhZ2VzIHMnZXhwcmltZW50IGRlIG1hbmnDqHJlIHNpbWlsYWlyZSBldCBzJ2luc3BpcmVudCBtdXR1ZWxsZW1lbnQ6IGFwcHJlbmRyZSDDoCB0cmF2YWlsbGVyIGF2ZWMgbCd1biByZXZpZW50IMOgIGFwcHJlbmRyZSBsJ2F1dHJlLiBMZXMgc3DDqWNpYWxpc3RlcyBlbiBjYWxjdWwgc2NpZW50aWZpcXVlIHRlbmRlbnQgw6AgYXBwcmVuZHJlIMOgIHRyYXZhaWxsZXIgYXZlYyBwbHVzIGQndW4gbGFuZ2FnZSBkZSBwcm9ncmFtbWF0aW9uLiBQYXIgYWlsbGV1cnMsIGwnZW50ZXByaXNlIFtVcnNhIGxhYnNdKGh0dHBzOi8vdXJzYWxhYnMub3JnLykgdHJhdmFpbGxlIGVuIGNlIG1vbWVudCDDoCBsJ8OpbGFib3JhdGlvbiBkJ3VuZSBpbmZyYXN0cnVjdHVyZSBkZSBkb25uw6llcyBwZXJtZXR0YW50IGRlIHBhcnRhZ2VyIGRlcyBvYmpldHMgUiBldCBQeXRob24sIGVuIHZ1ZSBkJ2ludMOpZ3JlciBkaWZmw6lyZW50cyBsYW5nYWdlcyBkZSBwcm9ncmFtbWF0aW9uIGRhbnMgdW4gbcOqbWUgZmx1eCBkZSB0cmF2YWlsLgoKIyMgUG91cnF1b2kgcGFzIE1hdGxhYj8KUGFyY2UgcXUnb24gZXN0IGVuIDIwMTguCgojIyBQb3VycXVvaSBwYXMgX19fX19fID8KRCdhdXRyZXMgbGFuZ2FnZXMsIGNvbW1lIFtKdWxpYV0oaHR0cDovL2p1bGlhbGFuZy5vcmcpLCBbU2NhbGFdKGh0dHA6Ly93d3cuc2NhbGEtbGFuZy5vcmcpLCBbSmF2YXNjcmlwdF0oaHR0cHM6Ly9kdGFiaW8uZ2l0Ym9va3MuaW8vZGF0YS1zY2llbmNlLXdpdGgtamF2YXNjcmlwdC9jb250ZW50LykgZXQgW1J1YnldKGh0dHA6Ly9zY2lydWJ5LmNvbSkgc29udCBhdXNzaSB1dGlsaXPDqXMgZW4gY2FsY3VsIHNjaWVudGlmaXF1ZS4gSWxzIHNvbnQgbsOpYW5tb2lucyBtb2lucyBnYXJuaXMgZXQgbW9pbnMgZG9jdW1lbnTDqXMgcXVlIFIuIERlcyBsYW5nYWdlcyBkZSBwbHVzIGJhcyBuaXZlYXUsIGNvbW1lIEZvcnRyYW4gZXQgQysrLCB2aWVubmVudCBzb3V2ZW50IGFwcHV5ZXIgbGVzIGZvbmN0aW9ucyBkZXMgYXV0cmVzIGxhbmdhZ2VzOiBjZXMgbGFuZ2FnZXMgc29udCBwbHVzIGFyZHVzIMOgIHV0aWxpc2VyIGF1IGpvdXIgbGUgam91ciwgbWFpcyBsZXVyIHJhcGlkaXTDqSBkZSBjYWxjdWwgZXN0IGltYmF0dGFibGUuCgojIENvbW1lbnQgdXRpbGlzZXIgY2UgbWFudWVsPwoKTGUgcGlyZSBhbmdsZSBhdmVjIGxlcXVlbCBqZSBwb3VycmFpcyBhYm9yZGVyIGxlIHN1amV0LCBjJ2VzdCBhdmVjIGR1IGNvZGUgZXQgZGVzIGZvcm11bGVzIG1hdGjDqW1hdGlxdWVzLiDDgCB0cmF2ZXJzIGNoYWN1biBkZXMgY2hhcGl0cmVzLCBqZSB0ZW50ZXJhaSBkZSB2b3VzIGFtZW5lciDDoCByw6lzb3VkcmUgZGVzIHByb2Jsw6htZXMgZGUgbGEgbWFuacOocmUgbGEgcGx1cyBpbnR1aXRpdmUgcG9zc2libGUuCgoqKkTDqWNyaXJlIGxlcyBjaGFwaXRyZXMgaWNpKioKCkxlcyBjaGFwaXRyZXMgMiwgMyBldCA0IHBldXZlbnQgw6p0cmUgY29uc2lkw6lyw6lzIGNvbW1lIGZvbmRhbWVudGF1eCBwb3VyIGJpZW4gbWHDrnRyaXNlciBSLiBJbHMgY29uY2VybmVudCByZXNwZWN0aXZlbWVudCBsZXMgYmFzZXMgZHUgbGFuZ2FnZSBSLCBsYSBtYW5pcHVsYXRpb24gZGUgZG9ubsOpZXMgZXQgbGEgdmlzdWFsaXNhdGlvbi4gU2kgdm91cyBtYcOudHJpc2V6IGTDqWrDoCBjZXMgYXNwZWN0cywgdm91cyB2b3VzIGludMOpcmVzc2VyZXogZGF2YW50YWdlIGF1eCBhdXRyZXMgY2hhcGl0cmVzLCBxdWkgcGV1dmVudCDDqnRyZSBjb25zdWx0w6lzIMOgIGxhIHBpw6hjZS4KCkxlcyBjaGFwaXRyZXMgZGUgY2UgbWFudWVsIHNvbnQgY29tcG9zw6lzIGRhbnMgdW4gZW52cm9ubmVtZW50IGRlIHRyYXZhaWwgZGUgdHlwZSAqbm90ZWJvb2sqLCBncsOiY2Ugw6AgKipKdXB5dGVyIGxhYioqLiBQb3VyIGV4w6ljdXRlciBsZXMgY29tbWFuZGVzLCBsZXMgdXRpbGlzYXRldXJzLnRyaWNlcyBwb3Vycm9udDoKCi0gVXRpbGlzZXIgSnVweXRlciBsYWIgZW4gbG9jYWwgc3VyIEFuYWNvbmRhIG91IGRhbnMgbGVzIG51YWdlcyBzdXIgTXlCaW5kZXIgb3UgQXp1cmUgbm90ZWJvb2tzCi0gQ29waWVyL0NvbGxlciBsZXMgY29tbWFuZGVzIGRhbnMgbCdpbnRlcmZhY2UgZGUgbGV1ciBjaG9peAoKIyBMZWN0dXJlcyBjb21wbMOpbWVudGFpcmVzCiMjIMOJY29sb2dpZSBtYXRow6ltYXRpcXVlCgotIFtIb3cgdG8gYmUgYSBxdWFudGl0YXRpdmUgZWNvbG9naXN0XSgpLiBKYXNvbiBNYXRoaXBvdWxvcyB2b3VzIHByZW5kIHBhciBsYSBtYWluIHBvdXIgZMOpY291dnJpciBsZXMgbm90aW9ucyBkZSBtYXRow6ltYXRpcXVlcyBmb25kYW1lbnRhbGVzIGVuIMOpY29sb2dpZSwgYXBwbGlxdcOpZXMgYXZlYyBsZSBsYW5nYWdlIFIuICAKLSBbTnVtZXJpY2FsIGVjb2xvZ3ldKGh0dHBzOi8vd3d3LmVsc2V2aWVyLmNvbS9ib29rcy9udW1lcmljYWwtZWNvbG9neS9sZWdlbmRyZS85NzgtMC00NDQtNTM4NjgtMCkuIEwnb3V2cmFnZSBoYXV0ZW1lbnQgZMOpdGFpbGzDqSBkZXMgZnLDqHJlcyBMZWdlbmRyZSBlc3Qgbm9uIHNldWxlbWVudCBmb25kYW1lbnRhbCwgbWFpcyBhdXNzaSBmb25kYXRldXIgZCd1bmUgc2NpZW5jZSBxdWkgw6l2b2x1ZSBlbmNvcmUgYXVqb3VyZCdodWk6IGwnYW5hbHlzZSBkZXMgZG9ubsOpZXMgw6ljb2xvZ2lxdWVzLgotIFtBIHByYWN0aWNhbCBndWlkZSB0byBlY29sb2dpY2FsIG1vZGVsbGluZ10oaHR0cDovL3d3dy5zcHJpbmdlci5jb20vdXMvYm9vay85NzgxNDAyMDg2MjM2KS4gU29ldGFlcnQgZXQgSGVybWFuIHBvcnRlbnQgdW5lIGF0dGVudGlvbiBwYXJ0aWN1bGnDqHJlIMOgIGxhIHByw6lzZW50YXRpb24gZGVzIHByaW5jaXBlcyBkZSBtb2TDqWxpc2F0aW9uIGRhbnMgdW4gbGFuZ2FnZSBhY2Nlc3NpYmxlIC0gY2UgcXVpIGVzdCByYXJlbWVudCBsZSBjYXMgZGFucyBsZSBkb21haW5lIGRlIGxhIG1vZMOpbGlzYXRpb24uIExlcyBtb2TDqGxlcyBwcsOpc2VudMOpcyBjb25jZXJuZW50IHByaW5jaXBhbGVtZW50IGxlcyBiaWxhbnMgZGUgbWFzc2UsIGVuIHRlcm1lIGRlIHN5c3TDqG1lcyBkZSByw6lhY3Rpb25zIGNoaW1pcXVlcyBldCBkZSByZWxhdGlvbnMgYmlvbG9naXF1ZXMuCi0gW01vZMOpbGlzYXRpb24gbWF0aMOpbWF0aXF1ZSBlbiDDqWNvbG9naWVdKGh0dHA6Ly93d3cuZG9jdW1lbnRhdGlvbi5pcmQuZnIvaG9yL2ZkaTowMTAwNTAzNTApLiBSYXJlIGxpdnJlIGVuIG1vZMOpbGlzYXRpb24gw6ljb2xvZ2lxdWUgcHVibGnDqSBlbiBmcmFuw6dhaXMsIGxhIHByZW1pw6hyZSBwYXJ0aWUgcydhdHRhcmRlIGF1eCBjb25jZXB0cyBtYXRow6ltYXRpcXVlcywgYWxvcnMgcXVlIGxhIGRldXhpw6htZSBwbGFuY2hlIMOgIGxlcyBhcHBsaXF1ZXIuIFNpIGxlIGhhdXQgbml2ZWF1IGQnYWJzdHJhY3Rpb24gZGUgbGEgcHJlbWnDqHJlIHBhcnRpZSB2b3VzIHJlYnV0ZSwgbidow6lzaXRleiBwYXMgZMOpYnV0ZXIgcGFyIGxhIHNlY29uZGUgcGFydGllIGV0IGRlIHZvdXMgcsOpZsOpcmVyIMOgIGxhIHByZW1pw6hyZSBhdSBiZXNvaW4uCi0gW0EgbmV3IGVjb2xvZ3k6IHN5c3RlbXMgcGVyc3BlY3RpdmVdKGh0dHBzOi8vd3d3LmVsc2V2aWVyLmNvbS9ib29rcy9hLW5ldy1lY29sb2d5L2pvcmdlbnNlbi85NzgtMC00NDQtNTMxNjAtNSkuIFByaW5jaXBhbGVtZW50IGdyw6JjZSBhdSBzb2xlaWwsIGxhIFRlcnJlIGZvcm1lIHVuIGVuc2VtYmxlIGRlIGdyYWRpZW50cyBkJ8OpbmVyZ2llIHF1aSBzZSBkw6ljbGluZW50IGVuIGRlcyBzeXN0w6htZXMgZCd1bmUgw6l0b25uYW50ZSBjb21wbGV4aXTDqS4gQydlc3QgYWluc2kgcXVlIGxlIHJlZ3JldMOpIFN2ZW4gRXJpayBKw7hyZ2Vuc2VuICgxOTM0LTIwMTYpIGV0IHNlcyBjb2xsYWJvcmF0ZXVycyBkw6ljcml2ZW50IGxlcyDDqWNvc3lzdMOobWVzIGRhbnMgY2V0IG91dnJhZ2UgcXVpIGZhaXQgc3VpdGUgYXV4IHRyYXZhdXggZm9uZGF0ZXVycyBkZSBIb3dhcmQgVGhvbWFzIE9kdW0uCgohW10oaW1hZ2VzLzAxX3N2ZW4tam9yZ2Vuc2VuLnBuZykKCltTdmVuIEVyaWsgSsO4cmdlbnNlbl0oaHR0cDovL3NjaXRlY2hjb25uZWN0LmVsc2V2aWVyLmNvbS9pbi1tZW1vcmlhbS1vZi1kci1zdmVuLWVyaWstam9yZ2Vuc2VuLykKCi0gRWNvbG9naWNhbCBlbmdpbmVlcmluZy4gUHJpbmNpcGxlIGFuZCBQcmFjdGljZS4KLSBFY29sb2dpY2FsIHByb2Nlc3NlcyBoYW5kYm9vay4KLSBNb2RlbGluZyBjb21wbGV4IGVjb2xvZ2ljYWwgZHluYW1pY3MKCiMjIFByb2dyYW1tYXRpb24KLSBbUiBmb3IgZGF0YSBzY2llbmNlXShodHRwOi8vcjRkcy5oYWQuY28ubnovKS4gTCdhbmFseXNlIGRlIGRvbm7DqWVzIGVzdCB1bmUgYnJhbmNoZSBpbXBvcnRhbnRlIGRlIGwnw6ljb2xvZ2llIG1hdGjDqW1hdGlxdWUuIENlIG1hbnVlbCB0cmFpdGUgZGVzIG1hdHJpY2VzIGV0IGxhIG1hbmlwdWxhdGlvbiBkZSBkb25uw6llcyBjaGFwaXRyZSAzKSwgZGUgbGEgdmlzdWFsaXNhdGlvbiAoY2hhcGl0cmUgNCkgYWluc2kgcXVlIGRlIGwnYXBwcmVudGlzc2FnZSBhdXRvbWF0aXF1ZSAoY2hhcGl0cmUgMTEpLiAqUiBmb3IgZGF0YSBzY2llbmNlKiByZXBhc3NlIGNlcyBzdWpldHMgcGx1cyBlbiBwcm9mb25kZXVyLiBFbiBwYXJ0aWN1bGllciwgbCdvdXZyYWdlIGRlIFtHYXJyZXR0IEdyb2xlbXVuZF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9TdGF0R2FycmV0dCkgZXQgW0hhZGxleSBXaWNraGFtXShodHRwczovL3R3aXR0ZXIuY29tL2hhZGxleXdpY2toYW0pIG9mZnJlIHVuZSBpbnRyb2R1Y3Rpb24gYXUgbW9kdWxlIGdyYXBoaXF1ZSBgZ2dwbG90MmAuCi0gW051bWVyaWNhbCBlY29sb2d5IHdpdGggUl0oaHR0cDovL3d3dy5zcHJpbmdlci5jb20vbGEvYm9vay85NzgxNDQxOTc5NzU5KS4gRGFuaWVsIEJvcmNhcmQgZW5zZWlnbmUgbCfDqWNvbG9naWUgbnVtw6lyaXF1ZSDDoCBsJ1VuaXZlcnNpdMOpIGRlIE1vbnRyw6lhbC4gU29uIGNvdXJzIGVzdCBjb25kZW5zw6kgZGFucyBjZSBsaXZyZSByZWNldHRlcyB2b3XDqSDDoCBsJ2FwcGxpY2F0aW9uIGRlcyBwcmluY2lwZXMgbG91cmRlbWVudCBkw6ljcml0cyBkYW5zIFtOdW1lcmljYWwgZWNvbG9neV0oaHR0cHM6Ly93d3cuZWxzZXZpZXIuY29tL2Jvb2tzL251bWVyaWNhbC1lY29sb2d5L2xlZ2VuZHJlLzk3OC0wLTQ0NC01Mzg2OC0wKS4KCiMjIERpdmVycwotIFtUaGUgdHJ1dGhmdWwgYXJ0XShodHRwOi8vd3d3LnRoZWZ1bmN0aW9uYWxhcnQuY29tL3AvdGhlLXRydXRoZnVsLWFydC1ib29rLmh0bWwpLiBEYW5zIGNldCBvdXZyYWdlLCBBbGJlcnRvIENhaXJvIHMnaW50w6lyZXNzZSDDoCBsJ3V0aWxpc2F0aW9uIGRlcyBkb25uw6llcyBldCBkZSBsZXVycyBwcsOpc2VudGF0aW9uIHBvdXIgZm91cm5pciB1bmUgaW5mb3JtYXRpb24gYWTDqXF1YXRlIMOgIGRpZmbDqXJlbnRzIHB1YmxpY3MuCgojIEJlc29pbiBkJ2FpZGU/CgpMZXMgb3V2cmFnZXMgZGUgcsOpZsOpcmVuY2UgcmVjb25udXMgdm91cyBvZmZyZW50IGRlcyBiYXNlcyBzb2xpZGVzIHN1ciBsZXNxdWVsbGVzIHZvdXMgcG91dmV6IHZvdXMgYXBwdXllciBkYW5zIHZvcyB0cmF2YXV4LiBNYWlzIGF1LWRlbMOgIGRlcyBwcmluY2lwZXMsIGF1IGpvdXIgbGUgam91ciwgdm91cyB2b3VzIGJ1dHRlcmV6IGltbWFucXVhYmxlbWVudCDDoCB0b3V0ZXMgc29ydGVzIGRlIHBldGl0cyBwcm9ibMOobWVzLiBRdWVsIG1vZHVsZSB1dGlsaXNlciBwb3VyIGNldHRlIHTDomNoZSBwcsOpY2lzZT8gUXVlIHZldXQgZGlyZSBjZSBtZXNzYWdlIGQnZXJyZXVyPyBDb21tZW50IGludGVycHLDqXRlciBjZSByw6lzdWx0YXQ/IFBvdXIgdG91cyBsZXMgcGV0aXRzIGFjY3JvY3MgZHUgcXVvdGlkaWVuIGVuIGNhbGN1bCBzY2llbnRpZmlxdWUsIGludGVybmV0IG9mZnJlIGRlIG5vbWJyZXVzZXMgcmVzc291cmNlcyBxdWkgc29udCB0csOocyBow6l0w6lyb2fDqG5lcyBlbiBxdWFsaXTDqS4gVm91cyBhcHJlbmRyZXogw6AgcmVjb25uYcOudHJlIGxlcyByZXNzb3VyY2VzIGZpYWJsZXMgw6AgY2VsbGVzIHF1aSBzb250IGRvdXRldXNlcy4gTGVzIHBsYXRlZm9ybWVzIGJhc8OpZXMgc3VyIFN0YWNrIEV4Y2hhbmdlLCBjb21tZSBbU3RhY2sgT3ZlcmZsb3ddKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20pIGV0IFtDcm9zcyBWYWxpZGF0ZWRdKGh0dHBzOi8vc3RhdHMuc3RhY2tleGNoYW5nZS5jb20pLCBtJ29udCBzb3V2ZW50IMOpdMOpIGQndW5lIGFpZGUgcHLDqWNpZXVzZS4gVm91cyBhdXJleiBhdmFudGFnZSDDoCB2b3VzIGNvbnN0cnVpcmUgdW5lIHBldGl0ZSBiYW5xdWUgZCdpbmZvcm1hdGlvbiAoW1R1cnRsXShodHRwczovL2ZyYW1hbm90ZXMub3JnKSwgRXZlcm5vdGUsIEdvb2dsZSBrZWVwKSBlbiBjb2xsZWN0YW50IGRlcyBsaWVucywgZW4gcHJlbmFudCBlbiBub3RlcyBjZXJ0YWluZXMgcmVjZXR0ZXMgZXQgZW4gc3VpdmFudCBkZXMgc2l0ZXMgZCdpbnTDqXLDqnQgYXZlYyBkZXMgZmx1eCBSU1MuCgojIMOAIHByb3BvcyBkZSBsJ2F1dGV1cgpKZSBtJ2FwcGVsbGUgU2VyZ2Utw4l0aWVubmUgUGFyZW50LiBKZSBzdWlzIGluZ8OpbmlldXIgw6ljb2xvZ3VlIGV0IHByb2Zlc3NldXIgYWRqb2ludCBhdSBEw6lwYXJ0ZW1lbnQgZGVzIHNvbHMgZXQgZGUgZ8OpbmllIGFncm9hbGltZW50YWlyZSBkZSBsJ1VuaXZlcnNpdMOpIExhdmFsLCBRdcOpYmVjLCBDYW5hZGEuIEplIGNyb2lzIHF1ZSBsYSBzY2llbmNlIGVzdCBsZSBtZWlsbGV1ciBtb3llbiBkJ2FwcHLDqWhlbmRlciBsZSBtb25kZSBwb3VyIHByZW5kcmUgZGVzIGTDqWNpc2lvbnMgYXZpc8OpZXMsIHBhcnRpY3VsacOocmVtZW50IGVuIMOpY29sb2dpZSwgdW5lIHNjaWVuY2UgbWFsdHJhaXTDqWUgZGUgdG91dGUgcGFydC4KCiMgVW4gY291cnMgY29tcGzDqW1lbnRhaXJlIMOgIGQnYXV0cmVzIGNvdXJzCgpDZSBjb3VycyBhIMOpdMOpIGTDqXZlbG9wcMOpIHBvdXIgb3V2cmlyIGRlcyBwZXJzcGVjdGl2ZXMgbWF0aMOpbWF0aXF1ZXMgZW4gw6ljb2xvZ2llIGV0IGVuIGFncm9ub21pZSDDoCBsYSBGU0FBIGRlIGwnVW5pdmVyc2l0w6kgTGF2YWwuIElsIGVzdCBjb21wbMOpbWVudGFpcmUgw6AgY2VydGFpbnMgY291cnMgb2ZmZXJ0cyBkYW5zIGQnYXV0cmVzIGluc3RpdHV0aW9ucyBhY2Fkw6ltaXF1ZXMgYXUgUXXDqWJlYywgZG9udCBjZXV4LWNpLgoKLSBbQklPMjA0MS4gQmlvc3RhdGlzdGlxdWVzIDFdKGh0dHBzOi8vYWRtaXNzaW9uLnVtb250cmVhbC5jYS9jb3Vycy1ldC1ob3JhaXJlcy9jb3Vycy9iaW8tMjA0MS8pLCBVbml2ZXJzaXTDqSBkZSBNb250csOpYWwKLSBbQklPMjA0Mi4gQmlvc3RhdGlzdGlxdWVzIDJdKGh0dHBzOi8vYWRtaXNzaW9uLnVtb250cmVhbC5jYS9jb3Vycy1ldC1ob3JhaXJlcy9jb3Vycy9CSU8tMjA0Mi8pLCBVbml2ZXJzaXTDqSBkZSBNb250csOpYWwKLSBbQklPMTA5LiBJbnRyb2R1Y3Rpb24gw6AgbGEgcHJvZ3JhbW1hdGlvbiBzY2llbnRpZmlxdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9FY29OdW1VZFMvQklPMTA5KSwgVW5pdmVyc2l0w6kgZGUgU2hlcmJyb29rZQotIFtCSU81MDAuIE3DqXRob2RlcyBlbiDDqWNvbG9naWUgY29tcHV0YXRpb25uZWxsZV0oaHR0cHM6Ly9naXRodWIuY29tL0Vjb051bVVkUy9CSU81MDApLCBVbml2ZXJzaXTDqSBkZSBTaGVyYnJvb2tlLgoKIyBDb250cmlidWVyIGF1IG1hbnVlbAoKSmUgc3VpcyBvdXZlcnQgYXV4IGNvbW1lbnRhaXJlcyBldCBzdWdnZXN0aW9ucy4gUG91ciBjb250cmlidWVyIGRpcmVjdGVtZW50LCBkaXJpZ2V6LXZvdXMgc3VyIGxlIGTDqXDDtHQgZHUgbWFudWVsIHN1ciBbR2l0SHViXSgpLCBwdWlzIG91dnJleiB1bmUgSXNzdWUgcG91ciBlbiBkaXNjdXRlci4gQ3LDqWV6IHVuZSBub3V2ZWxsZSBicmFuY2hlICgqZm9yayopLCBlZmZlY3R1ZXogbGVzIG1vZGlmaWNhdGlvbnMsIHB1aXMgbGFuY2VyIHVuZSByZXF1w6p0ZSBkZSBmdXNpb24gKCpwdWxsIHJlc3F1ZXN0KikuCg==
Comment utiliser ce manuel?
Le pire angle avec lequel je pourrais aborder le sujet, c’est avec du code et des formules mathématiques. À travers chacun des chapitres, je tenterai de vous amener à résoudre des problèmes de la manière la plus intuitive possible.
Décrire les chapitres ici
Les chapitres 2, 3 et 4 peuvent être considérés comme fondamentaux pour bien maîtriser R. Ils concernent respectivement les bases du langage R, la manipulation de données et la visualisation. Si vous maîtrisez déjà ces aspects, vous vous intéresserez davantage aux autres chapitres, qui peuvent être consultés à la pièce.
Les chapitres de ce manuel sont composés dans un envronnement de travail de type notebook, grâce à Jupyter lab. Pour exécuter les commandes, les utilisateurs.trices pourront: